# 配置用例执行的环境信息
import configparser
import os


def choose_environment(number):
    '''
    选择需要执行的测试环境
    :return:
    '''
    # 添加环境字典
    environmentList = [
        # 82环境
        {
            # 数据库环境
            'mysqlEnv': 'SIT_MYSQL',
            # 界面URL地址
            'environment_name': 'SIT',
            'environment_host': 'sit_lg',
            # 接口地址
            'interface_name': 'SIT_HOST_82',
            'interface_host': 'host',
        },
        # 164环境
        {
            # 数据库环境
            'mysqlEnv': 'SIT_MYSQL_LG',
            # 界面URL地址
            'environment_name': 'SIT_LG_TEST',
            'environment_host': 'sit_lg_164',
            # 接口地址
            'interface_name': 'SIT_HOST_164',
            'interface_host': 'host',
        },
        # 164环境
        {
            # 数据库环境
            'mysqlEnv': 'MYSQL_LG_163',
            # 界面URL地址
            'environment_name': 'LG_163',
            'environment_host': 'lg_163',
            # 接口地址
            'interface_name': 'HOST_163',
            'interface_host': 'host',
        },
        # 政务云环境
        {
            # 数据库环境
            'mysqlEnv': 'MYSQL_LG_84',
            # 界面URL地址
            'environment_name': 'LG_84',
            'environment_host': 'lg_84',
            # 接口地址
            'interface_name': 'HOST_84',
            'interface_host': 'host',
        },
    ]
    # 选择指定的环境进行执行
    return environmentList[number]


class Environment:

    def __init__(self):
        '''
        环境基础信息
        '''
        self.projectPath = os.path.dirname(os.path.dirname(__file__))
        # 根据下标选择指定的环境
        # 0: 82、1: 164、2: 163、 3: 84
        environment_dict = choose_environment(0)
        # 初始化环境信息
        self.mysqlEnv = environment_dict['mysqlEnv']
        # # 系统的环境信息
        self.environment_name = environment_dict['environment_name']
        self.environment_host = environment_dict['environment_host']
        # 接口的环境地址
        self.interface_name = environment_dict['interface_name']
        self.interface_host = environment_dict['interface_host']

    def mysql_env(self):
        '''
        数据库基础环境信息
        :return:
        '''
        '''
            获取数据库相关的配置
            :param name: 数据库的环境
            :return: 返回数据库配置字典
            '''
        conn = configparser.ConfigParser()
        conn.read(os.path.join(self.projectPath, 'Config', 'mysql_config.ini'))
        config_dict = {
            'host': None,
            'port': None,
            'user': None,
            'passwd': None,
            'charset': None,
            'database': None,
        }
        for key in config_dict.keys():
            if key == 'port':
                config_dict[key] = int(conn.get(self.mysqlEnv.upper(), key))
            else:
                config_dict[key] = conn.get(self.mysqlEnv.upper(), key)
        return config_dict

    def system_env(self):
        '''
        系统环境信息
        :return:
        '''

        conn = configparser.ConfigParser()
        conn.read(os.path.join(self.projectPath, 'Config', 'environment.ini'))
        path = conn.get(self.environment_name.upper(), self.environment_host)
        return path

    def interface_url(self):
        conn = configparser.ConfigParser()
        conn.read(os.path.join(self.projectPath, 'Config', 'environment.ini'))
        path = conn.get(self.interface_name.upper(), self.interface_host)
        return path


if __name__ == '__main__':
    print(Environment().interface_url())
